/* -----------------------------------------------------------------------------
 * XmlDisplayer.java
 * -----------------------------------------------------------------------------
 *
 * Producer : com.parse2.aparse.Parser 2.3
 * Produced : Wed Jul 17 16:23:20 CST 2013
 *
 * -----------------------------------------------------------------------------
 */
package com.netscenery.yang.abnf;
import java.util.ArrayList;

public class XmlDisplayer implements Visitor
{
  private boolean terminal = true;

  public Object visit(Rule_module_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<module-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</module-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_submodule_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<submodule-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</submodule-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_module_header_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<module-header-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</module-header-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_submodule_header_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<submodule-header-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</submodule-header-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_meta_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<meta-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</meta-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_linkage_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<linkage-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</linkage-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_revision_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<revision-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</revision-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_body_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<body-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</body-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_data_def_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<data-def-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</data-def-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yang_version_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yang-version-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yang-version-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yang_version_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yang-version-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yang-version-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yang_version_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yang-version-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yang-version-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_import_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<import-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</import-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_include_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<include-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</include-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_namespace_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<namespace-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</namespace-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_uri_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<uri-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</uri-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_prefix_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<prefix-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</prefix-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_belongs_to_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<belongs-to-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</belongs-to-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_organization_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<organization-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</organization-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_contact_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<contact-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</contact-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_description_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<description-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</description-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_reference_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<reference-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</reference-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_units_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<units-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</units-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_revision_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<revision-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</revision-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_revision_date rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<revision-date>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</revision-date>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_revision_date_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<revision-date-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</revision-date-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_extension_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<extension-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</extension-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_argument_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<argument-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</argument-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yin_element_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yin-element-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yin-element-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yin_element_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yin-element-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yin-element-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yin_element_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yin-element-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yin-element-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identity_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identity-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identity-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_base_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<base-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</base-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_feature_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<feature-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</feature-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_if_feature_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<if-feature-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</if-feature-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_typedef_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<typedef-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</typedef-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_type_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<type-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</type-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_type_body_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<type-body-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</type-body-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_numerical_restrictions rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<numerical-restrictions>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</numerical-restrictions>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_range_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<range-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</range-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_decimal64_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<decimal64-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</decimal64-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_fraction_digits_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<fraction-digits-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</fraction-digits-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_fraction_digits_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<fraction-digits-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</fraction-digits-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_fraction_digits_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<fraction-digits-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</fraction-digits-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_string_restrictions rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<string-restrictions>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</string-restrictions>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_length_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<length-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</length-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_pattern_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<pattern-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</pattern-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_default_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<default-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</default-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_enum_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<enum-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</enum-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_enum_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<enum-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</enum-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_leafref_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<leafref-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</leafref-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_require_instance_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<require-instance-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</require-instance-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_require_instance_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<require-instance-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</require-instance-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_require_instance_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<require-instance-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</require-instance-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_instance_identifier_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<instance-identifier-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</instance-identifier-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identityref_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identityref-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identityref-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_union_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<union-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</union-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_bits_specification rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<bits-specification>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</bits-specification>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_bit_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<bit-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</bit-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_position_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<position-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</position-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_position_value_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<position-value-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</position-value-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_position_value_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<position-value-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</position-value-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_status_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<status-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</status-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_status_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<status-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</status-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_status_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<status-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</status-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_config_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<config-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</config-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_config_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<config-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</config-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_config_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<config-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</config-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_mandatory_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<mandatory-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</mandatory-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_mandatory_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<mandatory-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</mandatory-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_mandatory_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<mandatory-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</mandatory-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_presence_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<presence-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</presence-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_ordered_by_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<ordered-by-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</ordered-by-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_ordered_by_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<ordered-by-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</ordered-by-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_ordered_by_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<ordered-by-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</ordered-by-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_must_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<must-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</must-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_error_message_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<error-message-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</error-message-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_error_app_tag_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<error-app-tag-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</error-app-tag-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_min_elements_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<min-elements-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</min-elements-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_min_value_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<min-value-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</min-value-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_min_value_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<min-value-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</min-value-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_max_elements_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<max-elements-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</max-elements-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_max_value_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<max-value-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</max-value-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_max_value_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<max-value-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</max-value-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_value_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<value-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</value-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_grouping_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<grouping-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</grouping-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_container_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<container-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</container-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_leaf_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<leaf-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</leaf-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_leaf_list_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<leaf-list-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</leaf-list-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_list_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<list-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</list-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_key_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<key-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</key-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_key_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<key-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</key-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_key_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<key-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</key-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unique_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unique-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unique-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unique_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unique-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unique-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unique_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unique-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unique-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_choice_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<choice-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</choice-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_short_case_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<short-case-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</short-case-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_case_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<case-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</case-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_anyxml_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<anyxml-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</anyxml-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_uses_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<uses-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</uses-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_container_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-container-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-container-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_leaf_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-leaf-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-leaf-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_leaf_list_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-leaf-list-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-leaf-list-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_list_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-list-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-list-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_choice_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-choice-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-choice-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_case_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-case-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-case-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_anyxml_stmts rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-anyxml-stmts>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-anyxml-stmts>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_uses_augment_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<uses-augment-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</uses-augment-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_uses_augment_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<uses-augment-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</uses-augment-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_uses_augment_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<uses-augment-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</uses-augment-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_augment_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<augment-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</augment-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_augment_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<augment-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</augment-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_augment_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<augment-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</augment-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unknown_statement rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unknown-statement>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unknown-statement>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unknown_statement2 rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unknown-statement2>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unknown-statement2>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_when_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<when-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</when-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_rpc_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<rpc-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</rpc-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_input_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<input-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</input-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_output_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<output-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</output-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_notification_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<notification-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</notification-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviation_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviation-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviation-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviation_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviation-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviation-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviation_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviation-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviation-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviate_not_supported_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviate-not-supported-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviate-not-supported-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviate_add_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviate-add-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviate-add-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviate_delete_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviate-delete-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviate-delete-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviate_replace_stmt rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviate-replace-stmt>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviate-replace-stmt>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_range_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<range-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</range-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_range_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<range-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</range-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_range_part rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<range-part>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</range-part>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_range_boundary rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<range-boundary>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</range-boundary>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_length_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<length-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</length-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_length_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<length-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</length-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_length_part rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<length-part>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</length-part>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_length_boundary rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<length-boundary>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</length-boundary>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_date_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<date-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</date-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_date_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<date-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</date-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_schema_nodeid rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<schema-nodeid>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</schema-nodeid>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_absolute_schema_nodeid rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<absolute-schema-nodeid>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</absolute-schema-nodeid>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_descendant_schema_nodeid rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<descendant-schema-nodeid>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</descendant-schema-nodeid>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_node_identifier rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<node-identifier>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</node-identifier>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_instance_identifier rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<instance-identifier>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</instance-identifier>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_predicate rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<predicate>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</predicate>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_predicate_expr rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<predicate-expr>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</predicate-expr>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_pos rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<pos>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</pos>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_absolute_path rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<absolute-path>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</absolute-path>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_relative_path rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<relative-path>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</relative-path>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_descendant_path rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<descendant-path>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</descendant-path>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_predicate rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-predicate>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-predicate>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_equality_expr rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-equality-expr>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-equality-expr>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_key_expr rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-key-expr>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-key-expr>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_rel_path_keyexpr rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<rel-path-keyexpr>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</rel-path-keyexpr>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_anyxml_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<anyxml-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</anyxml-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_argument_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<argument-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</argument-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_augment_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<augment-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</augment-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_base_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<base-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</base-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_belongs_to_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<belongs-to-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</belongs-to-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_bit_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<bit-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</bit-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_case_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<case-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</case-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_choice_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<choice-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</choice-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_config_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<config-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</config-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_contact_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<contact-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</contact-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_container_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<container-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</container-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_default_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<default-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</default-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_description_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<description-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</description-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_enum_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<enum-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</enum-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_error_app_tag_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<error-app-tag-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</error-app-tag-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_error_message_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<error-message-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</error-message-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_extension_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<extension-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</extension-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviation_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviation-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviation-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deviate_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deviate-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deviate-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_feature_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<feature-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</feature-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_fraction_digits_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<fraction-digits-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</fraction-digits-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_grouping_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<grouping-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</grouping-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identity_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identity-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identity-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_if_feature_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<if-feature-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</if-feature-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_import_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<import-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</import-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_include_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<include-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</include-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_input_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<input-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</input-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_key_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<key-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</key-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_leaf_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<leaf-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</leaf-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_leaf_list_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<leaf-list-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</leaf-list-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_length_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<length-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</length-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_list_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<list-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</list-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_mandatory_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<mandatory-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</mandatory-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_max_elements_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<max-elements-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</max-elements-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_min_elements_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<min-elements-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</min-elements-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_module_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<module-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</module-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_must_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<must-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</must-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_namespace_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<namespace-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</namespace-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_notification_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<notification-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</notification-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_ordered_by_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<ordered-by-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</ordered-by-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_organization_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<organization-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</organization-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_output_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<output-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</output-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_pattern_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<pattern-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</pattern-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_position_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<position-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</position-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_prefix_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<prefix-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</prefix-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_presence_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<presence-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</presence-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_range_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<range-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</range-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_reference_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<reference-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</reference-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_refine_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<refine-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</refine-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_require_instance_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<require-instance-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</require-instance-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_revision_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<revision-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</revision-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_revision_date_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<revision-date-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</revision-date-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_rpc_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<rpc-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</rpc-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_status_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<status-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</status-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_submodule_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<submodule-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</submodule-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_type_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<type-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</type-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_typedef_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<typedef-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</typedef-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unique_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unique-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unique-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_units_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<units-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</units-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_uses_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<uses-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</uses-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_value_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<value-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</value-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_when_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<when-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</when-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yang_version_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yang-version-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yang-version-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_yin_element_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<yin-element-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</yin-element-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_add_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<add-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</add-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_current_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<current-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</current-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_delete_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<delete-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</delete-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_deprecated_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<deprecated-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</deprecated-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_false_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<false-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</false-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_max_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<max-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</max-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_min_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<min-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</min-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_not_supported_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<not-supported-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</not-supported-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_obsolete_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<obsolete-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</obsolete-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_replace_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<replace-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</replace-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_system_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<system-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</system-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_true_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<true-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</true-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unbounded_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unbounded-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unbounded-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_user_keyword rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<user-keyword>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</user-keyword>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_current_function_invocation rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<current-function-invocation>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</current-function-invocation>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_prefix_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<prefix-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</prefix-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_prefix_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<prefix-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</prefix-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_prefix rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<prefix>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</prefix>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identifier_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identifier-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identifier-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identifier_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identifier-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identifier-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identifier rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identifier>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identifier>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identifier_ref_arg_str rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identifier-ref-arg-str>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identifier-ref-arg-str>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_identifier_ref_arg rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<identifier-ref-arg>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</identifier-ref-arg>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_string rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<string>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</string>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_integer_value rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<integer-value>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</integer-value>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_non_negative_integer_value rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<non-negative-integer-value>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</non-negative-integer-value>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_positive_integer_value rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<positive-integer-value>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</positive-integer-value>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_zero_integer_value rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<zero-integer-value>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</zero-integer-value>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_stmtend rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<stmtend>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</stmtend>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_sep rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<sep>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</sep>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_optsep rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<optsep>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</optsep>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_stmtsep rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<stmtsep>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</stmtsep>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_line_break rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<line-break>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</line-break>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_non_zero_digit rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<non-zero-digit>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</non-zero-digit>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_decimal_value rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<decimal-value>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</decimal-value>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_SQUOTE rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<SQUOTE>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</SQUOTE>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_ALPHA rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<ALPHA>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</ALPHA>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_CR rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<CR>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</CR>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_CRLF rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<CRLF>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</CRLF>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_DIGIT rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<DIGIT>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</DIGIT>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_DQUOTE rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<DQUOTE>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</DQUOTE>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_HEXDIG rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<HEXDIG>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</HEXDIG>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_HTAB rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<HTAB>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</HTAB>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_LF rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<LF>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</LF>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_SP rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<SP>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</SP>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_VCHAR rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<VCHAR>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</VCHAR>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_WSP rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<WSP>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</WSP>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_URI rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<URI>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</URI>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_hier_part rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<hier-part>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</hier-part>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_URI_reference rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<URI-reference>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</URI-reference>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_absolute_URI rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<absolute-URI>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</absolute-URI>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_relative_ref rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<relative-ref>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</relative-ref>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_relative_part rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<relative-part>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</relative-part>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_scheme rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<scheme>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</scheme>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_authority rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<authority>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</authority>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_userinfo rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<userinfo>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</userinfo>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_host rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<host>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</host>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_port rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<port>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</port>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_IP_literal rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<IP-literal>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</IP-literal>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_IPvFuture rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<IPvFuture>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</IPvFuture>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_IPv6address rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<IPv6address>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</IPv6address>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_h16 rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<h16>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</h16>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_ls32 rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<ls32>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</ls32>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_IPv4address rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<IPv4address>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</IPv4address>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_dec_octet rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<dec-octet>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</dec-octet>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_reg_name rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<reg-name>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</reg-name>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_abempty rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-abempty>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-abempty>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_absolute rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-absolute>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-absolute>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_noscheme rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-noscheme>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-noscheme>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_rootless rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-rootless>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-rootless>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_path_empty rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<path-empty>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</path-empty>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_segment rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<segment>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</segment>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_segment_nz rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<segment-nz>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</segment-nz>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_segment_nz_nc rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<segment-nz-nc>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</segment-nz-nc>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_pchar rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<pchar>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</pchar>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_query rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<query>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</query>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_fragment rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<fragment>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</fragment>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_pct_encoded rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<pct-encoded>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</pct-encoded>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_unreserved rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<unreserved>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</unreserved>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_reserved rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<reserved>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</reserved>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_gen_delims rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<gen-delims>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</gen-delims>");
    terminal = false;
    return null;
  }

  public Object visit(Rule_sub_delims rule)
  {
    if (!terminal) System.out.println();
    System.out.print("<sub-delims>");
    terminal = false;
    visitRules(rule.rules);
    if (!terminal) System.out.println();
    System.out.print("</sub-delims>");
    terminal = false;
    return null;
  }

  public Object visit(Terminal_StringValue value)
  {
    System.out.print(value.spelling);
    terminal = true;
    return null;
  }

  public Object visit(Terminal_NumericValue value)
  {
    System.out.print(value.spelling);
    terminal = true;
    return null;
  }

  private Boolean visitRules(ArrayList<Rule> rules)
  {
    for (Rule rule : rules)
      rule.accept(this);
    return null;
  }
}

/* -----------------------------------------------------------------------------
 * eof
 * -----------------------------------------------------------------------------
 */
